Попередня сторінка: Вєличини. Алгоритми роботи з величина...
Наступна сторінка: Рядки як послідовності символів
Вам відомо, що Python, як і інші мови програмування, дозволяє записувати розгалужені й циклічні алгоритми . Тож пригадаймо відповідні оператори та розгляньмо приклади їх використання.
Алгоритмічна структура розгалуження
Якщо залежно від початкових умов можливі декілька варіантів розв’язання задачі, при складанні алгоритму використовується алгоритмічна структура розгалуження
Розгалуження — це алгоритмічна структура, в якій виконання певної послідовності дій залежить від істинності умови (логічного виразу) .
Розглянемо блок-схеми неповного (рис . 3.1) і повного (рис . 3.2) розгалужень, а також приклади запису відповідних умовних операторів мовою Python .
Як бачимо, умовні оператори записують за допомогою ключових слів if (з англ. якщо) та else (з англ. інакше).
Оператори, які належать до гілок if і else, записують із обов’язковим однаковим відступом вправо.
Якщо потрібно послідовно перевірити декілька умов, застосовують множинне розгалуження . Для цього до оператора повного розгалуження слід додати ключове слово elif (від англ . else if — інше якщо) . У гілці elif обов’язково повинен бути логічний вираз — умова, як у заголовку if. У кінці після всіх гілок elif може бути одна гілка else для обробки випадків, які не відповідають умовам гілки if і всіх elif
Створимо програму-довідник, яка за введеною назвою пори року повідомлятиме назви відповідних їй місяців .
Під час виконання програми будь-який рядок, відмінний від української назви пори року, набраної малими літерами, оброблятиметься гілкою else — виводитиметься повідомлення «неправильні дані» .
Алгоритмічна структура повторення
Одним із найважливіших засобів програмування є можливість багаторазового виконання деякого набору команд . Це дозволяє створювати програми для обробки великих сукупностей даних, побудови візерунків тощо
Команди, що повторюються, разом зі службовими словами, які забезпечують керування цим процесом, називаються циклом .
Повторення (цикл) — це алгоритмічна структура, в якій та сама послідовність дій може виконатися кілька разів
Як ви вже знаєте, повторювані під час виконання циклу дії називають тілом циклу, а кожне виконання тіла циклу називають ітерацією .
У Python реалізовано два види операторів циклу: з умовою (рис . 3.3) і з параметром (рис. 3.4). Розглянемо таблицю:
Як і в умовному операторі, команди тіла циклу слід записувати з однаковим відступом від початку рядка із заголовком циклу.
Цикл із умовою
Під час виконання циклу з умовою (while) спочатку перевіряється умова . Якщо вона істинна, то виконується чергова ітерація.
Якщо умова хибна, то виконання циклу припиняється .
Якщо при першій перевірці умова виявиться хибною, то тіло циклу не виконається жодного разу.
Якщо в ході виконання циклу умова залишається істинною, то цикл може повторюватися нескінченно (кажуть, програма «зациклена») .
Цикл із параметром
Тіло циклу із параметром (for) виконується задану кількість разів . Послідовність значень параметра можна задати кількома способами .
• За допомогою вбудованої функції range(start, stop, step), яка повертає послідовність цілих чисел від start до stop (значення stop не включається у послідовність) із кроком step .
Якщо start = 0 або step = 1, то ці параметри можна не зазначати . Щоб вести відлік у зворотному порядку, step має бути від’ємним .
Надрукуємо парні двоцифрові числа у порядку спадання:
У вигляді списку значень, взятого у квадратні дужки; параметр почергово набуває всіх значень зі списку.
У тілі циклу можна використовувати будь-які команди: умовні оператори, інші оператори циклу тощо.
Складемо програму розв’язування задачі .
Знайти двоцифрове число, яке на 26 більше від добутку своїх цифр
Позначимо цифру десятків за а, цифру одиниць за b. Тоді наше двоцифрове число можна виразити через його цифри а і b: 10 • a + b. За умовою задачі число 10а + b на 26 більше від добутку цифр ab. Складемо математичну модель:
10 а + b = ab + 26
Складемо програму для пошуку розв’язків методом перебору Запишемо оператори циклу для перебору всіх можливих сполучень цифр a і b та перевіримо для кожного сполучення умову задачі for a in range(1, 10):
Задача має три розв’язки: числа 32, 56, 98.
Досконалими давні греки називали числа, що дорівнюють сумі всіх своїх дільників, окрім самого числа (6 = 1 + 2 + 3) .
Знайдемо досконалі числа в діапазоні від m до n.
Алгоритм розв’язування задачі: для кожного числа k від m до n знайти суму дільників від 1 до k // 2; якщо сума дільників дорівнює числу k, то вивести значення k.
Використовуючи алгоритмічні структури слідування, розгалуження та повторення, можна побудувати будь-який як завгодно складний алгоритм
Питання для самоперевірки
Чому дорівнюватиме значення змінної b після виконання коду, якщо спочатку: а) а = 13; б) а = 30; в) а = 88; г) а = 11?
2. Запишіть оператор розгалуження для визначення за номером деякого року у (у > 0) номера його століття С.
3. Що буде надруковано після виконання фрагмента програми?
4. Одна пальчикова батарейка може забруднити 400 л води . Об’єм води в озері Світязь становить 180000000 м3 . Запишіть оператор
циклу для визначення того, на який день забрудниться все озеро, якщо першого дня безвідповідально викинути 1 батарейку, а кожного наступного — удвічі більше, ніж попереднього.
5. Запишіть оператори циклу для друку двоцифрових двійкових чисел: 00, 01, 10, 11 .
6. Складіть програму для розв’язування задачі методом перебору. У магазині придбали олівці по 6 грн і зошити по 5 грн. Вартість всієї покупки склала 68 грн . Скільки купили олівців і скільки зошитів?
Вправа з
►► Написати програму для пошуку розв’язку задачі методом перебору. Знайти номер автомобіля, що порушив правила дорожнього руху, якщо відомо, що номер чотирицифровий, кратний 5 і 7, а сума його цифр становить К (4 < К < 36) .
У Python IDLE виберіть команду File ^ New File.
1) Запрограмуйте введення значення змінної k. Запит на введення значення k має повторюватися, поки користувач не введе число, яке відповідає умові:
2) Позначте цифри номера через a, b, c і d. Напишіть оператори циклу для перебору всіх можливих сполучень значень a, b, c і d
Для кожного сполучення значень потрібно перевіряти умову задачі і, якщо умова істинна, виводити чотирицифрове число, що утворюється з цифр a, b, c і d:
3) Збережіть програму у файлі з іменем Vprava3 .
4) Випробуйте програму для: а) k = 25; б) k = 12 .
Комп’ютерне тестування
Виконайте тестове завдання 3 із автоматичною перевіркою результату
Це матеріал з підручника Інформатика за 7 клас Бондаренко
Наступна сторінка: Рядки як послідовності символів